#include "management.h"


int main(int argc, char const *argv[])
{
	 //判断执行格式
    if(argc < 3){
        fprintf(stderr,"eg:%s <ip> <port>\n",argv[0]);
        exit(1);
    }
	int ch;

	//申请变量
	int sockfd;
	struct sockaddr_in serveraddr;
	socklen_t addrlen = sizeof(struct sockaddr_in);
	MEMSG memsg;	//员工信息结构体
	CLMSG clmsg;	//客户端信息结构体
	SEMSG semsg;	//服务器信息结构体

	//创建套接字
	if((sockfd = socket(AF_INET,SOCK_STREAM,0)) < 0){
		ERRMSGS("创建套接字失败\n");		
	}
	
	//填充网络结构体
	serveraddr.sin_family = AF_INET;
	serveraddr.sin_addr.s_addr = inet_addr(argv[1]);
	serveraddr.sin_port = htons(atoi(argv[2]));


	//向服务器发送请求连接
	if(connect(sockfd,(struct sockaddr*)&serveraddr,addrlen) < 0){
		ERRMSGS("连接请求发送失败\n");
	}

	printf("正在连接网络  ♪  ♫  ♬  ♪  ♫  ♬ \n");
    sleep(1);
	printf("———— ✤ 连接服务器成功 ✤ ————\n");

	//进入登录操作界面
	while(1)
	{
		//打印登录界面
		Print_welcome1(&clmsg);
		//输入对应编号进行调用函数
		switch(clmsg.code){
			case 0:
				printf("———— 正在退出系统  ————\n");
				exit(1);
				break;
			case 1:
				printf("———— ⚜️  注册管理员账号 ⚜️  ———— \n");
				Administer_reguster(sockfd,&clmsg);
				break;
			case 2:
				printf("———— ⚜️  注册员工账号 ⚜️  ———— \n");
				
				break;
			case 3:
				printf("———— 🎉 欢迎管理员登录 🎉 ———— \n");
				if(Administer_login(sockfd,&clmsg)==0)
				{
					ch=1;
					while(ch)
					{
						Print_welcome2(&clmsg);
						send(sockfd,&clmsg,sizeof(clmsg),0);
						switch (clmsg.code)
						{
							case 5:
								printf("———— 📛 查询员工信息 📛 ———— \n");
								Mem_dataShow(sockfd,&clmsg);
								break;
							case 6:
								printf("———— 🔰 修改员工信息 🔰 ———— \n");
								Mem_change(sockfd,&clmsg);
								break;
							case 7:
								printf("———— ➕ 添加员工信息 ➕ ———— \n");
								Men_install(sockfd,&clmsg);
								break;
							case 8:
								printf("———— ➖ 删除员工信息 ➖ ———— \n");
								Mem_edelete(sockfd,&clmsg);
								break;
							case 0:
								printf("———— 正在退出系统  ————\n");
								ch=0;
								break;
						


						}
					}
				}
				break;
			case 4:
				printf("———— 🎉 欢迎员工登录 🎉 ———— \n");
				
				break;
			default:
				printf("———— ❗ 大兄弟你整错了，从新输入 ❗ ————\n");
				break;
		}			
	}

	return 0;
}



